package com.ysh.one_to_one;

import com.ysh.domain.Card;
import com.ysh.domain.Person;
import org.apache.ibatis.annotations.One;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface CardMapper {
    // 查询全部
    // 实现一对一查询
    @Select("SELECT * FROM card")
    @Results(
            {
                    @Result(column = "id", property = "id"),
                    @Result(column = "number", property = "number"),
                    @Result(
                            property = "person", // 代表被包含对象变量名
                            javaType = Person.class,  // 被包含对象的实际数据类型
                            column = "pid",    // 根据查询出的card表中的pid字段查询person表
                            /*
                                one、@One 一对一固定的写法
                                select属性：指定调用哪个接口中的哪个方法
                                       接口全路径.方法名
                             */
                            one = @One(select = "com.ysh.one_to_one.PersonMapper.selectById")
                    )

            }
    )
    public abstract List<Card> selectAll();
}
